﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class ПроцедурыУправленияПерсоналомПолныеПрава
	{
		// Проверяет уникальность кадровых номеров
		//
		// Параметры:
		//	Организация - нет
		//  СообщатьОбОшибке - булево, определяет необходимость сообщения об ошибке при выполнении функции
		//  СообщениеОбОшибке - сюда помещается текст сообщения об ошибке
		//
		// Возвращаемое значение:
		//  Истина	- если номера уникальные
		//	Ложь	- если номера не уникальные

		public object НомераКадровыхДокументовУникальны(/*Организация, СообщатьОбОшибке = Истина, СообщениеОбОшибке = ""*/)
		{
			//Отказ = Ложь;
			//ЗаголовокСообщения = "Включить единый кадровый нумератор невозможно, т.к. следующие номера используются в нескольких кадровых документах: ";
			/*ТекстЗапроса = 
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|	ДокументыОрганизации.Номер
	|ИЗ
	|	(ВЫБРАТЬ
	|		ГОД(КадровоеПеремещениеОрганизаций.Дата) КАК Год,
	|		КадровоеПеремещениеОрганизаций.Номер КАК Номер,
	|		КадровоеПеремещениеОрганизаций.Ссылка КАК Ссылка
	|	ИЗ
	|		Документ.КадровоеПеремещениеОрганизаций КАК КадровоеПеремещениеОрганизаций
	|	ГДЕ
	|		КадровоеПеремещениеОрганизаций.Организация = &Организация
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ
	|		ГОД(ПриемНаРаботуВОрганизацию.Дата),
	|		ПриемНаРаботуВОрганизацию.Номер,
	|		ПриемНаРаботуВОрганизацию.Ссылка
	|	ИЗ
	|		Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
	|	ГДЕ
	|		ПриемНаРаботуВОрганизацию.Организация = &Организация
	|	
	|	ОБЪЕДИНИТЬ ВСЕ
	|	
	|	ВЫБРАТЬ
	|		ГОД(УвольнениеИзОрганизаций.Дата),
	|		УвольнениеИзОрганизаций.Номер,
	|		УвольнениеИзОрганизаций.Ссылка
	|	ИЗ
	|		Документ.УвольнениеИзОрганизаций КАК УвольнениеИзОрганизаций
	|	ГДЕ
	|		УвольнениеИзОрганизаций.Организация = &Организация) КАК ДокументыОрганизации
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	|			ГОД(КадровоеПеремещениеОрганизаций.Дата) КАК Год,
	|			КадровоеПеремещениеОрганизаций.Номер КАК Номер,
	|			КадровоеПеремещениеОрганизаций.Ссылка КАК Ссылка
	|		ИЗ
	|			Документ.КадровоеПеремещениеОрганизаций КАК КадровоеПеремещениеОрганизаций
	|		
	|		ОБЪЕДИНИТЬ ВСЕ
	|		
	|		ВЫБРАТЬ
	|			ГОД(ПриемНаРаботуВОрганизацию.Дата),
	|			ПриемНаРаботуВОрганизацию.Номер,
	|			ПриемНаРаботуВОрганизацию.Ссылка
	|		ИЗ
	|			Документ.ПриемНаРаботуВОрганизацию КАК ПриемНаРаботуВОрганизацию
	|		
	|		ОБЪЕДИНИТЬ ВСЕ
	|		
	|		ВЫБРАТЬ
	|			ГОД(УвольнениеИзОрганизаций.Дата),
	|			УвольнениеИзОрганизаций.Номер,
	|			УвольнениеИзОрганизаций.Ссылка
	|		ИЗ
	|			Документ.УвольнениеИзОрганизаций КАК УвольнениеИзОрганизаций) КАК ВсеКадровыеДокументы
	|		ПО ДокументыОрганизации.Год = ВсеКадровыеДокументы.Год
	|			И ДокументыОрганизации.Номер = ВсеКадровыеДокументы.Номер
	|			И ДокументыОрганизации.Ссылка <> ВсеКадровыеДокументы.Ссылка";*/
			//Запрос = Новый Запрос(ТекстЗапроса);
			//Запрос.УстановитьПараметр("Организация",Организация);
			//Выборка = Запрос.Выполнить().Выбрать();
			while(true/*Выборка.Следующий()*/)
			{
				if(true/*СообщатьОбОшибке*/)
				{
					//ОбщегоНазначения.СообщитьОбОшибке(Выборка.Номер,Отказ,ЗаголовокСообщения);
				}
			}
			/*;
	СообщениеОбОшибке = СообщениеОбОшибке + ".";*/
			return null;
		}
		//НомераКадровыхДокументовУникальны()
		// Процедура производит синхронирзацию наименований сотрудников

		public void СинхронизироватьНаименованияСотрудников(/*Физлицо, Сотрудник = Неопределено*/)
		{
			if(true/*Сотрудник = Неопределено*/)
			{
				//Сотрудник = Справочники.СотрудникиОрганизаций.ПустаяСсылка();
			}
			//Запрос = Новый Запрос;
			/*ТекстЗапроса = 
	"ВЫБРАТЬ
	|	СотрудникиОрганизаций.Наименование,
	|	СотрудникиОрганизаций.ПостфиксНаименования,
	|	СотрудникиОрганизаций.Ссылка
	|ИЗ
	|	Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
	|ГДЕ
	|	СотрудникиОрганизаций.Физлицо = &парамФизлицо";*/
			//Запрос.УстановитьПараметр("парамФизлицо", Физлицо);
			//Запрос.Текст = ТекстЗапроса;
			//Выборка = Запрос.Выполнить().Выбрать();
			while(true/*Выборка.Следующий()*/)
			{
				if(true/*Выборка.Ссылка = Сотрудник*/)
				{
					/*// не обрабатываем сотрудника, из которого вызвана синхронизация
*/
				}
				//НовоеНаименование = Физлицо.Наименование + ?(ЗначениеЗаполнено(Выборка.ПостфиксНаименования), " " + Выборка.ПостфиксНаименования, "");
				if(true/*Выборка.Наименование <> НовоеНаименование*/)
				{
					//СотрудникОбъект = Выборка.Ссылка.ПолучитьОбъект();
					//СотрудникОбъект.Наименование = НовоеНаименование;
					//СотрудникОбъект.ОбменДанными = Истина;
					//СотрудникОбъект.Записать();
					//СотрудникОбъект.Разблокировать();
				}
			}
			//;;
		}
	}
}
